#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <ctime>
using namespace std;
#define N 102
char s[N], m[N][N], h[N], d[N][N][N][N], v[N][N];
int main()
{
	long long TM=clock();
	int i, j, k, t, l, n, p;
	for(scanf("%s%d", s, &n), i=0; i<n; scanf("%s", m[i]), i++);
	//for(n=100, i=0; i<n; s[i]='a', i++);
	//for(i=0; i<n; i++)
	//	for(j=0; j<60; m[i][j]='a', j++);
	for(l=strlen(s), i=0; i<n; h[i]=strlen(m[i]), i++);
	for(i=1; i<=l; i++)
		for(j=0; j+i<=l; j++)
		{
			for(k=0; k<n; k++)
			{
				if(i==1 && s[j]==m[k][0]) d[i][j][k][0]=0;
				else d[i][j][k][0]=N;
				for(t=1; t<h[k]; t++)
				{
					d[i][j][k][t]=N;
					if(m[k][t]==s[j+i-1])
						for(p=0; p+t<i; d[i][j][k][t]=min((int)d[i][j][k][t], v[p][j+i-p-1]+d[i-p-1][j][k][t-1]), p++);
				}
			}
			v[i][j]=N;
			for(k=1; k<i; v[i][j]=min((int)v[i][j], v[k][j]+v[i-k][j+k]), k++);
			for(k=0; k<n; v[i][j]=min((int)v[i][j], d[i][j][k][h[k]-1]+1), k++);
		}
	printf("%d\n", v[l][0]);
	//printf("%lld\n", clock()-TM);
	return 0;
}